package com.wangxiaonan.wxwork.service;

import com.alibaba.fastjson.JSONObject;

/**
 * 通讯录管理
 *
 * @Author: wangxiaonan
 * @Date: 2018/8/22
 **/
public interface UserService {

    String GET_USER_GET_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=%s&userid=%s";
    String POST_USER_UPDATE_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/update?access_token=%s";
    String GET_USER_SIMPLE_LIST_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/simplelist?access_token=%s&department_id=%s&fetch_child=%s";
    String GET_USER_LIST_URL = "https://qyapi.weixin.qq.com/cgi-bin/user/list?access_token=%s&department_id=%s&fetch_child=%s";

    /**
     * 读取成员
     *
     * @param token 必须  调用接口凭证
     * @param userId 必须  成员UserID。对应管理端的帐号，企业内必须唯一。不区分大小写，长度为1~64个字节
     */
    JSONObject getUser(String token, String userId);

    /**
     * 更新成员
     *
     * @param token 必须  调用接口凭证
     * @param jsonParam 必须  成员更新信息内容
     */
    JSONObject updateUser(String token, String jsonParam);

    /**
     * 获取部门成员
     *
     * @param token 必须	调用接口凭证
     * @param deptId 必须	获取的部门id
     * @param isFetchChild 否	1/0：是否递归获取子部门下面的成员
     */
    JSONObject getUserList(String token, String deptId, String isFetchChild);

    /**
     * 获取部门成员详情
     *
     * @param token 必须	调用接口凭证
     * @param deptId 必须	获取的部门id
     * @param isFetchChild 否	1/0：是否递归获取子部门下面的成员
     */
    JSONObject getUserInfoList(String token, String deptId, String isFetchChild);

}
